package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.Zhuanjia;
import org.apache.ibatis.annotations.Param;

/**
 * 专家Mapper接口
 * 
 * @author dy
 * @date 2024-05-29
 */
public interface ZhuanjiaMapper 
{
    /**
     * 查询专家
     * 
     * @param zhuanjiaid 专家主键
     * @return 专家
     */
    public Zhuanjia selectZhuanjiaByZhuanjiaid(String zhuanjiaid);

    /**
     * 查询专家列表
     * 
     * @param zhuanjia 专家
     * @return 专家集合
     */
    public List<Zhuanjia> selectZhuanjiaList(Zhuanjia zhuanjia);

    /**
     * 新增专家
     * 
     * @param zhuanjia 专家
     * @return 结果
     */
    public int insertZhuanjia(Zhuanjia zhuanjia);

    /**
     * 修改专家
     * 
     * @param zhuanjia 专家
     * @return 结果
     */
    public int updateZhuanjia(Zhuanjia zhuanjia);

    /**
     * 删除专家
     * 
     * @param zhuanjiaid 专家主键
     * @return 结果
     */
    public int deleteZhuanjiaByZhuanjiaid(String zhuanjiaid);

    /**
     * 批量删除专家
     * 
     * @param zhuanjiaids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteZhuanjiaByZhuanjiaids(String[] zhuanjiaids);

    /**
     * 专家管理查询统计列表
     *
     * @param zhuanjia 专家信息
     * @return map
     */
    public List<Map<String,Object>> chaxuntongjilist(@Param("deptid") String deptid,
                                                     @Param("xingming")String xingming,
                                                     @Param("deptname")String deptname,
                                                     @Param("deptlevel") String deptlevel,
                                                     @Param("gongzuodanwei") String gongzuodanwei,
                                                     @Param("ruxuannianfen")String ruxuannianfen,
                                                     @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                                     @Param("zhuanjiazhuangtaibiandongshijian_kaishi")String zhuanjiazhuangtaibiandongshijian_kaishi,
                                                     @Param("zhuanjiazhuangtaibiandongshijian_jieshu")String zhuanjiazhuangtaibiandongshijian_jieshu,
                                                     @Param("startindex")int startindex, @Param("pagesize") int pagesize);

    public int chaxuntongjilistCount(@Param("deptid") String deptid,
                                     @Param("xingming")String xingming,
                                     @Param("deptname")String deptname,
                                     @Param("deptlevel") String deptlevel,
                                     @Param("gongzuodanwei") String gongzuodanwei,
                                     @Param("ruxuannianfen")String ruxuannianfen,
                                     @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                     @Param("zhuanjiazhuangtaibiandongshijian_kaishi")String zhuanjiazhuangtaibiandongshijian_kaishi,
                                     @Param("zhuanjiazhuangtaibiandongshijian_jieshu")String zhuanjiazhuangtaibiandongshijian_jieshu);

    /**
     * 专家管理查询统计列表 单位普通管理员
     *
     * @param zhuanjia 专家信息
     * @return map
     */
    public List<Map<String,Object>> chaxuntongjilistCommon(@Param("deptid") String deptid,
                                                           @Param("xingming")String xingming,
                                                           @Param("deptname")String deptname,
                                                           @Param("deptlevel") String deptlevel,
                                                           @Param("gongzuodanwei") String gongzuodanwei,
                                                           @Param("ruxuannianfen")String ruxuannianfen,
                                                           @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                                           @Param("zhuanjiazhuangtaibiandongshijian_kaishi")String zhuanjiazhuangtaibiandongshijian_kaishi,
                                                           @Param("zhuanjiazhuangtaibiandongshijian_jieshu")String zhuanjiazhuangtaibiandongshijian_jieshu,
                                                           @Param("startindex")int startindex,@Param("pagesize") int pagesize);

    public int chaxuntongjilistCommonCount(@Param("deptid") String deptid,
                                           @Param("xingming")String xingming,
                                           @Param("deptname")String deptname,
                                           @Param("deptlevel") String deptlevel,
                                           @Param("gongzuodanwei") String gongzuodanwei,
                                           @Param("ruxuannianfen")String ruxuannianfen,
                                           @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                           @Param("zhuanjiazhuangtaibiandongshijian_kaishi")String zhuanjiazhuangtaibiandongshijian_kaishi,
                                           @Param("zhuanjiazhuangtaibiandongshijian_jieshu")String zhuanjiazhuangtaibiandongshijian_jieshu);

    Map<String, Integer> Countchaxuntongji(@Param("deptid") String deptid,
                                           @Param("xingming")String xingming,
                                           @Param("deptname")String deptname,
                                           @Param("deptlevel") String deptlevel,
                                           @Param("gongzuodanwei") String gongzuodanwei,
                                           @Param("ruxuannianfen")String ruxuannianfen,
                                           @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                           @Param("zhuanjiazhuangtaibiandongshijian_kaishi")String zhuanjiazhuangtaibiandongshijian_kaishi,
                                           @Param("zhuanjiazhuangtaibiandongshijian_jieshu")String zhuanjiazhuangtaibiandongshijian_jieshu);

    Map<String, Integer> Countchaxuntongjicommon(@Param("deptid") String deptid,
                                                 @Param("xingming")String xingming,
                                                 @Param("deptname")String deptname,
                                                 @Param("deptlevel") String deptlevel,
                                                 @Param("gongzuodanwei") String gongzuodanwei,
                                                 @Param("ruxuannianfen")String ruxuannianfen,
                                                 @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                                 @Param("zhuanjiazhuangtaibiandongshijian_kaishi")String zhuanjiazhuangtaibiandongshijian_kaishi,
                                                 @Param("zhuanjiazhuangtaibiandongshijian_jieshu")String zhuanjiazhuangtaibiandongshijian_jieshu);

}
